// copyright jyz.2024

#pragma once

#include "CoreMinimal.h"
#include "UObject/Interface.h"
#include "CombatInterface.generated.h"

// This class does not need to be modified.
UINTERFACE(NotBlueprintType,NotBlueprintable)
class UCombatInterface : public UInterface
{
	GENERATED_BODY()
};

/**
 * 战斗接口
 */
class AURARPGDEMO_API ICombatInterface
{
	GENERATED_BODY()

	// Add interface functions to this class. This is the class that will be inherited to implement this interface.
public:
	/**
	 * 
	 * @return 返回角色等级
	 */
	virtual int32 GetCharacterLevel() const;
	/**
	 * 
	 * @return 返回武器攻击点的位置（通过套接字去找武器的位置）
	 */
	virtual FVector GetCombatSocketLocation();
	
	UFUNCTION(BlueprintCallable,Category="Combat")
	virtual void SetFacingTarget(FVector FacingTargetLocation)=0;

	UFUNCTION(BlueprintCallable,Category="Combat")
	virtual UAnimMontage* GetHitReactAnimMontage() const {return nullptr;}
	//死亡
	virtual void Die() = 0;
};
